package org.ehe.erp.domain.quality.bo;

import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import org.ehe.common.mybatis.core.domain.BaseEntity2;
import org.ehe.erp.domain.quality.ErpQualityAttachment;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.Range;

import java.time.LocalDateTime;

/**
 * 质检附件业务对象
 *
 * @author zhangnn
 * @className ErpQualityAttachmentBo
 * @description 质检附件BO，用于业务逻辑处理
 * @date 2025-09-10 15:00:00
 */
@Data
@AutoMapper(target = ErpQualityAttachment.class, reverseConvertGenerate = false)
public class ErpQualityAttachmentBo extends BaseEntity2 {

    /** 附件ID */
    private Long id;

    /** 质检任务ID */
    private Long taskId;

    /** 反馈ID */
    private Long feedbackId;

    /** 质检记录ID */
    private Long recordId;

    /** 文件名 */
    @NotBlank(message = "文件名不能为空")
    @Length(max = 500, message = "文件名长度不能超过500字符")
    private String fileName;

    /** 文件路径 */
    @NotBlank(message = "文件路径不能为空")
    @Length(max = 1000, message = "文件路径长度不能超过1000字符")
    private String filePath;

    /** 文件大小（字节） */
    private Long fileSize;

    /** 文件类型 */
    @Length(max = 100, message = "文件类型长度不能超过100字符")
    private String fileType;

    /** 附件类型（1质检照片、2问题照片、3其他文档） */
    @Range(min = 1, max = 3, message = "附件类型值必须在1-3之间")
    private Integer attachmentType = 1;

    /** 上传人 */
    @Length(max = 100, message = "上传人长度不能超过100字符")
    private String uploadPerson;

    /** 上传时间 */
    private LocalDateTime uploadTime;
}
